// @ES5
// // 手机
// function Phone(brand, price) {
//   this.brand = brand;
//   this.price = price;
// }

// // 添加方法
// Phone.prototype.call = function () {
//   console.log('我可以打电话');
// }

// // 智能手机
// function SmarkPhone(brand, price, color, size) {
//   Phone.call(this, brand, price);
//   this.color = color;
//   this.size = size;
// }

// // 设置子级构造函数的原型
// SmarkPhone.prototype = new Phone;
// SmarkPhone.prototype.constructor = SmarkPhone;

// // 声明子类方法
// SmarkPhone.prototype.photo = function () {
//   console.log('我可以拍照');
// }

// let huawei = new SmarkPhone('华为', 5888, 'black', '5.5inch');
// console.log(huawei); //SmarkPhone {brand: '华为', price: 5888, color: 'black', size: '5.5inch'}

// @ES6
class Phone {
  constructor(brand, price) {
    this.brand = brand;
    this.price = price;
  }

  // 父类的成员属性
  call() {
    console.log('我可以打电话');
  }
}

class SmarkPhone extends Phone {
  constructor(brand, price, color, size) {
    super(brand, price);
    this.color = color;
    this.size = size;
  }

  photo() {
    console.log('我可以拍照');
  }

  // 子类重写
  call() {
    console.log('我可以视频通话');
  }
}

let xiaomi = new SmarkPhone('小米', 7999, '玫瑰金', '5.5inch');
console.log(xiaomi); //SmarkPhone {brand: '小米', price: 7999, color: '玫瑰金', size: '5.5inch'}
xiaomi.call(); //我可以视频通话
xiaomi.photo();//我可以拍照